Field of the Invention
This invention relates generally to the field of computer processors. More particularly, the invention relates to a method and apparatus for distributed snoop filtering.
Description of the Related Art
Modem microprocessors use a multi-level cache hierarchy. The cache size typically grows larger and the cache serves more hardware threads further up the hierarchy. Current processors have been using three levels of cache. The last level cache (LLC) in this hierarchy (also known as the Level-3 (L3) cache) services all the cores within the processor. The two lower levels of the cache, the L1 cache and the mid-level cache (MLC) (also known as the Level-2 (L2) cache), lie inside each core.
As used herein an “inclusive” cache arrangement is one in which the same cache are stored at multiple cache levels in the hierarchy. For example, in an inclusive arrangement, all cache lines stored in a L1 cache are also stored in the MLC and/or MLC. In an “exclusive” cache arrangement, a cache line is stored exclusively in only one cache level in the hierarchy (e.g., the L1 but not the MLC or LLC).
In some current architectures, the MLC is neither strictly inclusive nor strictly exclusive of the L1. As shown in FIG. 8 one subset 801 of the cache lines in the L1 can also be found in the MLC, but another subset 802 of cache lines in the L1 are found exclusively in the L1. In some prior processor architectures, the LLC was fully inclusive of the inner caches (e.g., the MLC and L1); it filtered cache snoops directed to the inner caches by also storing information about which cores might have the cache line along with data for each cache line.
A strictly inclusive cache makes it expensive to have large lower (core) caches, and is thus restrictive on their size. It also reduces the total available caching space due to duplicate caching of lines in higher and lower hierarchies of caches. Future processors, particularly in the server world, are thus shifting towards implementing non-inclusive LLCs. The Xeon server strategy for creating a non-inclusive LLC involves making LLC a victim cache for all core MLCs, referred to herein as “non-inclusive LLC” or “NI LLC.”